A storage array generally includes one engine, and one engine includes two controllers, which is generally referred to as a dual-controller structure. As shown in FIG. 1, a storage array includes an input/output manager A 101, an input/output manager B 102, a controller A 103 and a controller B 110. The input/output manager A 101 is connected to the controller A 103, and the input/output manager B 102 is connected to the controller B 110. The controller A 103 includes a peripheral component interconnect express (PCIe) switch A 104, a central processing unit (CPU) A 105 and a memory A 106; and the controller B 110 includes a PCIe switch B 111, a CPU B 112 and a memory B 113. The PCIe switch A 104 is connected to the PCIe switch B 111. In the storage array shown in FIG. 1, the input/output manager A 101 receives a write data request. A target logical unit (LU) of the write data request is homed to the controller A 103. That is, the controller A 103 writes data carried in the write data request into the target LU. The input/output manager A 101 sends the write data request to the CPU A 105 via the PCIe switch A 104 of the controller A 103, and the CPU A 105 writes the data carried in the write data request and metadata into the memory A 106. The CPU A 105 writes the data and the metadata in the memory A 106 into a hard disk (120, 122) according to settings of the storage array.
The foregoing data writing process in a storage array consumes CPU computing power of a controller and memory resources of the controller, and affects performance of the storage array severely.